package com.education.welco.service;

import com.education.welco.pojo.dto.LearningStatisticsDto;
import com.education.welco.pojo.vo.StudyAnalysisParamVo;

import java.util.List;
import java.util.Map;

/**
 * zcp
 * 试卷分析
 * 2022/10/21
 */
public interface OrderPaperAnalysisService {
    Map<String, Object> summary(Integer paperId);

    Map<String, Object> paperQuestionType(Integer paperId);

    Map<String, Object> paperScoreDistribution(Integer paperId);

    Map<String, Object> fallibleQuestionTop(Integer paperId);

    Map<String, Object> itemAnalysis(Integer paperId);

    /**
     * 课程分析-课堂数据总览
     * 视频学习总学时(小时)、线上考核参与人次、平均学习进度、测试及格率
     *
     * @param courseId
     * @param classId
     * @return
     */
    Map<String, Object> dataScreening(Integer courseId, Integer classId);

    /**
     * 学习进度
     *
     * @param courseId
     * @param classId
     * @return
     */
    Map<String, Object> rateOfLearning(Integer courseId, Integer classId);

    Map<String, Object> assessmentCompletion(StudyAnalysisParamVo paramVo);

    /**
     * 视频学习情况
     *
     * @param paramVo
     * @return
     */
    Map<String, Object> videoLearning(StudyAnalysisParamVo paramVo);

    Map<String, Object> contentList(StudyAnalysisParamVo paramVo);

    Map<String, Object> talkTop(StudyAnalysisParamVo paramVo);

    Map<String, Object> learningStatistics(LearningStatisticsDto paramVo);

    Map<String, Object> wrongTitleBook(LearningStatisticsDto paramVo);

    Map<String, Object> wrongQuestionRanking(LearningStatisticsDto paramVo);

    Map<String, Object> correctQuestionsRanking(LearningStatisticsDto paramVo);

    Map<String, Object> accuracyRanking(LearningStatisticsDto paramVo);

    Map<String, Object> exerciseDurationRanking(LearningStatisticsDto paramVo);

    Map<String, Object> selectWrongQuestions(Integer taskId, Integer userId);

    void subWrongQuestions(List<Integer> ids);

    Map<String, Object> rateOfLearningApp(Integer courseId, Integer classId, Integer pageNum, Integer pageSize);

    Map<String, Object> rateOfLearningEcharts(Integer courseId, Integer classId);

    Map<String, Object> videoLearningEcharts(StudyAnalysisParamVo buildParam);

    Map<String, Object> videoLearningApp(StudyAnalysisParamVo buildParam, Integer pageNum, Integer pageSize);

    Map<String, Object> assessmentCompletionEcharts(StudyAnalysisParamVo buildParam);

    Map<String, Object> assessmentCompletionApp(StudyAnalysisParamVo param, Integer pageNum, Integer pageSize);
}
